* Micro-Dos fuer XL/XE mit Turbo 1050 * written by 'The Atari Team' 1989 * НУР═ФУЕР═дОУБЛЕ═дЕНСИТЫ║║║║ * * OUT L ORG 1792,$A800 DFB $44,3 DFW $700 DFW RETURN ZEIGERLO EQU 67 ZEIGERHI EQU 68 HILFSLO EQU 69 HILFSHI EQU 70 BUCHSTAB EQU 72 HILFSBYT EQU 71 HILF01 EQU 73 LDA #$77 STA 10 LDA #$E4 STA 11 LDX #255 STX HILFSBYT INX STX 580 INX STX 9 STX 752 STX 779 LDA #146 STA 710 LDA #10 STA 709 LDA #110 STA 778 LDA #128 STA 772 LDX #8 STX 773 SPRUNG2 JSR DISK INC 773 INC 778 LDA 778 CMP #113 BCC SPRUNG2 * Text ausgeben LDA #TEXT:L STA ZEIGERLO LDA #TEXT:H STA ZEIGERHI LDX ZEIGERLO LDA ZEIGERHI LDY #69 JSR IOCB LDA #8 STA 82 STA 85 CLC LDA #69 ADC ZEIGERLO STA ZEIGERLO LDA ZEIGERHI ADC #0 STA ZEIGERHI LDA #2 STA 84 LDA #96 STA BUCHSTAB SPRUNG4 LDA BUCHSTAB JSR VORWAHL LDX ZEIGERLO LDA ZEIGERHI LDY #24 JSR IOCB LDA #155 JSR ZEICHEN INC BUCHSTAB LDA ZEIGERLO CLC ADC #24 STA ZEIGERLO BCC SPRUNG3 INC ZEIGERHI SPRUNG3 DEC CHRMENGE+1 BPL SPRUNG4 SPRUNG6 JSR GETKEY CMP #32 BEQ RESET CMP #155 BNE SPRUNG5 RESET JMP 58487 SPRUNG5 SEC SBC #65 CMP CHRMENGE BCS SPRUNG6 PHA DEC 85 CLC ADC #5 STA 84 LDA #27 JSR ZEICHEN LDA #31 JSR ZEICHEN LDA #2 STA 82 * Wenn Select gedrueckt: kein TURBO LDA 53279 CMP #5 BEQ NOSELECT * TURBO einschalten SEI LDA #0 STA 54286 LDA 534 STA WOHIN+1 LDA 535 STA WOHIN+2 LDA #TURBO:L STA 534 LDA #TURBO:H STA 535 LDA #64 STA 54286 CLI * Laden beginnt hier ---------------- NOSELECT PLA ASL TAY LDA SECBEGIN,Y STA 778 LDA SECBEGIN+1,Y STA 779 JSR SEKTOR JMP SPRUNG10 SEKTOR LDX #BUFFER:L STX 772 LDA #BUFFER:H STA 773 DISK LDX #0 STX 776 INX STX 777 STX 769 LDA #7 STA 774 LDA #49 STA 768 LDA #64 STA 771 JSR 58457 BMI DISK RETURN RTS SPRUNG10 JSR холебыте BCS хауптанс STA ZEIGERLO JSR холебыте STA ZEIGERHI * Ueberprueffe ob 255 am Anfang * hole Anfangsadresse BIT HILF01 BMI SPRUNG8 STA 737 LDA ZEIGERLO STA 736 SPRUNG8 LDA #255 CMP ZEIGERLO BNE SPRUNG9 CMP ZEIGERHI BEQ SPRUNG10 * Hole Endadresse * Laenge festlegen SPRUNG9 STA HILF01 JSR холебыте PHA JSR холебыте STA HILFSHI PLA SEC SBC ZEIGERLO STA HILFSLO LDA HILFSHI SBC ZEIGERHI STA HILFSHI INC HILFSLO BNE NEXT1 INC HILFSHI * Init festlegen falls nicht vorhanden NEXT1 LDA #RETURN:L STA 738 LDA #RETURN:H STA 739 * Laden ----------------------------- LOOP JSR холебыте LDY #0 STA (ZEIGERLO),Y * Speicherzeiger immer +1 nehmen CLC LDA #1 ADC ZEIGERLO STA ZEIGERLO BCC NEXT2 INC ZEIGERHI * Laenge um 1 herunter zaehlen NEXT2 DEC HILFSLO LDA HILFSLO CMP #255 BNE NEXT3 DEC HILFSHI NEXT3 ORA HILFSHI * fertig ? BNE LOOP НЕИН JSR INIT ЙА * kurze Pause WAIT LDA 54283 BNE WAIT * Beginne von neuem JMP SPRUNG10 * Springe Init an INIT JMP (738) * Springe Hauptansprung an хауптанс SEI LDA #0 STA 54286 LDA WOHIN+1 STA 534 LDA WOHIN+2 STA 535 LDA #64 STA 54286 CLI JMP (736) * ----------------------------------- * Hole ein Byte aus dem Sektor холебыте INC HILFSBYT LDX HILFSBYT * hole Byte aus BUFFER,X LDA BUFFER,X TAY * ueberpruefe ob Ende der Sektor schon * erreicht ? LDA BUFFER+255 CMP HILFSBYT BEQ NEXT4 ИСТ═ЕРРЕИЦХТ * bei nicht erreicht loesche Carry TYA CLC RTS * hole naechsten Sektor nach BUFFER NEXT4 LDA BUFFER+253 AND #3 STA 779 LDA BUFFER+254 STA 778 * War es schon der letzte Sektor ? ORA 779 BNE NEXT5 НЕИН * ЙА setze Carry und RTS SEC RTS * Hole naechsten Sektor von Diskette NEXT5 JSR SEKTOR LDA #255 STA HILFSBYT BNE холебыте VORWAHL JSR ZEICHEN LDA #46 JSR ZEICHEN LDA #32 ZEICHEN LDY #0 IOCB STA 837 STX 836 STY 840 LDX #11 STX 834 LDX #0 STX 841 JMP 58454 GETKEY LDA 58405 PHA LDA 58404 PHA RTS TURBO PHA LDA #32 BIT 53774 BNE SP1 EOR #255 STA 53774 LDA 16 STA 53774 JMP (522) SP1 LSR BIT 53774 BNE SP3 LSR BIT 54019 BNE SP2 LDA 570 CMP #50 BCS SP2 LDA 573 ORA #128 STA 573 BMI SP2 SP3 LSR BIT 16 BEQ SP2 BIT 53774 BNE SP2 LDA 59 BEQ SP2 LDA 573 BPL SP2 LDA #6 STA 53764 SP2 PLA WOHIN JMP 00000 CHRMENGE DFB 16,17 TEXT DFB 125 ASC "Double Density Mini Dos [1050 TURBO]" ASC " Written by The ATARI Team" DFB 126,126,126,155 ASC " " ASC /Gamedisk No. 00a/ DFB 155 ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " ASC " " * letzte Zeile DFB 126,126,126,155 ASC " Select Programm. " SECBEGIN DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 DFB 0,0 BUFFER EQU * ЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪ